﻿/******************************************
 * ITESM CEM 12 de septiembre de 2010
 * Actividad Breakout 2a parte
 * Alejandro Jesús Morales Torres
 * Gerardo Samuel Cabello Montes de Oca
 * 1161376
 * 965042
 * *****************************************/

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace BreakoutAlexMetal
{
    class Explosion
    {
        Texture2D hojaSprites; //La imagen con los sprites
        Vector2 posicion; //La posicion en pantalla donde queremos dibujar
        int cuadrosAnimacion;//Cuantos cuadros tiene la animacion
        int milisegundosPorCuadro; //Cuando debe durar cada cuadro
        int tiempoDesdeUltimoCuadro = 0; //Tiempo desde la ultima   actualizacion
        int indiceAnimacion = 0; //En que cuadro de la animacion vamos
        Point tamanioCuadro;


        public Explosion(Texture2D hojaSprites, int cuadrosAnimacion, int milisegundosPorCuadro,
          Point tamanoCuadro)
        {
            this.hojaSprites = hojaSprites;
            this.cuadrosAnimacion = cuadrosAnimacion;
            this.milisegundosPorCuadro = milisegundosPorCuadro;
            this.tamanioCuadro = tamanoCuadro;
        }

        public void setPosition(Vector2 posicion){
            this.posicion = posicion;
        }

        public void resetIndiceAnimacion() {
            indiceAnimacion = 0;
        }


        public void Update(GameTime gameTime)
        {
            tiempoDesdeUltimoCuadro += gameTime.ElapsedGameTime.Milliseconds;
            
            if (tiempoDesdeUltimoCuadro >= milisegundosPorCuadro)
            {
                tiempoDesdeUltimoCuadro = 0;

                if (indiceAnimacion < cuadrosAnimacion - 1)
                    indiceAnimacion++;
                else
                    indiceAnimacion = 0;
            }
        }

        public void Draw(SpriteBatch spriteBatch)
        {


            spriteBatch.Draw(hojaSprites, posicion,
                new Rectangle(indiceAnimacion * tamanioCuadro.X, 0, tamanioCuadro.X, tamanioCuadro.Y),
                Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0);


        }
    }
}
